Add Zbs single-bit operations implementation (RV32, SystemVerilog) - #191
Add Zbs single-bit operations implementation (RV32, SystemVerilog)#191jeff-7 wants to merge 35 commits into
Conversation
🔧 DE1-SoC Synthesis Report Summary Diff
Comparing synthesis results from main branch vs. this PR |
|
Thanks for the PR! Let us merge #190 first, so that you can use the |
| // Zbs: Single-Bit Operations (RV32) | ||
| // | ||
| // Implements: | ||
| // - bclr / bclri | ||
| // - bset / bseti | ||
| // - binv / binvi | ||
| // - bext / bexti | ||
| // | ||
| // Design note: | ||
| // - Purely combinational ALU block | ||
| // - reg2[4:0] used as bit index | ||
| // - R/I distinction handled in decoder | ||
|
|
There was a problem hiding this comment.
for the documentation here I would just specify the section of the specification that corresponds to Zbs extension
|
Just merged #190 , please rebase onto latest main so you can use |
Add Zbs instruction testbench with assertions and randomized tests
Refractor Zbs to use ALU enum types and Update testbench accordingly.
(migrate b_alu_control)
|
hey @Dazhou-20383 i brought this up to date a bit. since we've released the integration for B extension already, we need to implement the Zbs decoder as part of this PR to make sure it works with the rest of the core |
…ix small lint issues
…tbench accordingly
TheDeepestSpace
left a comment
There was a problem hiding this comment.
hey that looks great! i think you should be able to enable Zbs in the RISCOF config now so that it also run the tests on these instructions.
Implements RV32 Zbs single-bit operations:
Design follows abstract ALU pattern: